From e52238118332c3089b1663f6399c8a067ee7f292 Mon Sep 17 00:00:00 2001 From: Matthias Clasen Date: Tue, 23 Nov 2010 13:36:44 -0500 Subject: [PATCH] Add a background example to the docs --- docs/reference/gtk/Makefile.am | 3 +- docs/reference/gtk/gtk-docs.sgml | 2 + docs/reference/gtk/images/background.png | Bin 0 -> 1400 bytes gtk/gtkstylecontext.c | 6 +++ tests/styleexamples.c | 57 ++++++++++++++++++++++- 5 files changed, 66 insertions(+), 2 deletions(-) create mode 100644 docs/reference/gtk/images/background.png diff --git a/docs/reference/gtk/Makefile.am b/docs/reference/gtk/Makefile.am index fb96f41444..9af5bd6935 100644 --- a/docs/reference/gtk/Makefile.am +++ b/docs/reference/gtk/Makefile.am @@ -345,7 +345,8 @@ HTML_IMAGES = \ $(srcdir)/images/checks.png \ $(srcdir)/images/options.png \ $(srcdir)/images/arrows.png \ - $(srcdir)/images/expanders.png + $(srcdir)/images/expanders.png \ + $(srcdir)/images/background.png # Extra options to supply to gtkdoc-fixref FIXXREF_OPTIONS=--extra-dir=../gdk/html \ diff --git a/docs/reference/gtk/gtk-docs.sgml b/docs/reference/gtk/gtk-docs.sgml index 5214878f87..505531a640 100644 --- a/docs/reference/gtk/gtk-docs.sgml +++ b/docs/reference/gtk/gtk-docs.sgml @@ -3,6 +3,8 @@ "http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd" [ + + ]> diff --git a/docs/reference/gtk/images/background.png b/docs/reference/gtk/images/background.png new file mode 100644 index 0000000000000000000000000000000000000000..ad6ea36a99a6133e675b5ac18e095626289429de GIT binary patch literal 1400 zcmV-;1&8{HP)2XNDxKzG~(y5lC$9XEmQxaF-qY;L2|{o%uR`e%deS#GZq05^xh4KTpGI&cHv zo&W;?PY#0vFnDrQ2P;4523XxEUG@a9+UNQURXwfllW;W{tPQ3I*2^G|Lsu;(8yr0{|RX$M9+}HE~%J!Kg(O_{pgm(cQ{jz^>|CX21j9v(sKN=K|d!cCn zY72Y!yAx$I*0g1To;}<{!GVrW$N8TokE(enh{>}US67Q zn&EA}VJ|ODMw8vk|Nl?8yd|1s4V5OT$={Tu$!W3)l_saj?&YP)YId0N(j+w58Y)dz zvr9sy$!M~Bd1+Fb-eK!0O-8d*4V7lACcBrHCacM=L#4@SIy>d1Notay(quK+gi4ds z?6{YgW~(MU<)z7Kx&B5Xl*3T7R_+VM}Pay z>erU$X3Z#}A!rRD&5fGj)20B_*T*W&P?M~o$|k9~{B#GGP-$+X8G~M;NV7#Vn(~b` zRGO`t9)ULe3PhTWCb{*LCaK9LRGO?NJLRRxX@&`HxG9-52~D4Zv?)QmtI7WO7hLbF2+l_sGX?mnX$+ApQa zXr_!ys7*>~wrA6j_kuYeCG^8$d0uHYYr0{ymu!tRO6YVZ%~nkSlQEajG@aQ|Db3BA zg8?Svpoqp#@w2a + * Typical background rendering, showing the effect of + * @border-image, @border-width and @border-radius + * + * + * * Since: 3.0. **/ void diff --git a/tests/styleexamples.c b/tests/styleexamples.c index 13c57d8368..a382c8868d 100644 --- a/tests/styleexamples.c +++ b/tests/styleexamples.c @@ -94,6 +94,57 @@ draw_cb_expanders (GtkWidget *widget, cairo_t *cr) return TRUE; } +static gboolean +draw_cb_background (GtkWidget *widget, cairo_t *cr) +{ + GtkStyleProvider *provider; + GtkStyleContext *context; + + context = gtk_widget_get_style_context (widget); + + gtk_style_context_save (context); + + provider = (GtkStyleProvider *)gtk_css_provider_new (); + gtk_css_provider_load_from_data (GTK_CSS_PROVIDER (provider), + "* {\n" + " border-radius: 10;\n" + " border-width: 0;\n" + " background-image: -gtk-gradient (linear, left top, right bottom, from(#ff00ff), to(#aabbcc));\n" + "}\n", -1, NULL); + gtk_style_context_add_provider (context, provider, GTK_STYLE_PROVIDER_PRIORITY_APPLICATION); + gtk_style_context_set_junction_sides (context, 0); + gtk_render_background (context, cr, 12, 12, 100, 100); + gtk_style_context_remove_provider (context, provider); + gtk_style_context_restore (context); + + return TRUE; +} + +static gboolean +draw_cb_frame (GtkWidget *widget, cairo_t *cr) +{ + GtkStyleProvider *provider; + GtkStyleContext *context; + + context = gtk_widget_get_style_context (widget); + + gtk_style_context_save (context); + + provider = (GtkStyleProvider *)gtk_css_provider_new (); + gtk_css_provider_load_from_data (GTK_CSS_PROVIDER (provider), + ".frame {\n" + " border-image: url('gradient1.png') 10 10 10 10 stretch;\n" + " border-style; solid\n" + "}\n", -1, NULL); + gtk_style_context_add_provider (context, provider, GTK_STYLE_PROVIDER_PRIORITY_APPLICATION); + gtk_style_context_set_junction_sides (context, 0); + gtk_render_frame (context, cr, 12, 12, 25, 25); + gtk_style_context_remove_provider (context, provider); + gtk_style_context_restore (context); + + return TRUE; +} + static char *what; static gboolean @@ -106,7 +157,11 @@ draw_cb (GtkWidget *widget, cairo_t *cr) else if (strcmp (what, "arrow") == 0) return draw_cb_arrows (widget, cr); else if (strcmp (what, "expander") == 0) - return draw_cb_expanders (widget ,cr); + return draw_cb_expanders (widget, cr); + else if (strcmp (what, "background") == 0) + return draw_cb_background (widget, cr); + else if (strcmp (what, "frame") == 0) + return draw_cb_frame (widget, cr); return FALSE; } -- 2.30.2